1. Field of the Invention
The present invention relates to the field of wizard-based applications. More specifically, the present invention relates to the use of reusable components to allow for the easy customization of wizard-based applications.
2. The Background
A Wizard-based application, or xe2x80x9cwizardxe2x80x9d, is an interactive help utility which guides a user through each step of a multi-step operation, offering helpful information and explaining options along the way. Wizards were originally designed by Microsoft(copyright) for its Windows(copyright) applications, but now are widely imitated and utilized in a wide variety of computer applications.
FIG. 1 is a diagram illustrating a step in a wizard. Dialog box 10 may contain information 12 about the step as well as radio buttons 14. When the user has completed the step, he may select a xe2x80x9cnextxe2x80x9d button 16 to move to the next step. If the user makes a mistake, he may select a xe2x80x9cPrevxe2x80x9d button 18 to edit the previous step. Cancel 20 and help 22 boxes are also available.
FIG. 2 is a diagram illustrating another step in a wizard. Dialog box 50 contains information 52, radio buttons 54, and a select box 56 where a user may select a file name or browse through his directories to find an appropriate file name. Other types of input fields are also possible, including checkboxes and edit boxes.
Due to the fact that they simplify step-style applications, wizards are most commonly used in installation programs, which facilitate the installation and configuration of computer software or hardware. One specific type of application where they are especially helpful is in the area of communications programs for connection to networks or the Internet. Internet Service Providers (ISPs) are organizations that provide access to the Internet. They commonly offer a multitude of different connection choices, such as dial-up, ISDN, DSL, etc. Many users who utilize ISPs want a simple way to install and/or configure software to utilize their Internet or network connection. As such, many ISPs now offer free software when a user signs up for an account, the software including a wizard to facilitate installation and configuration.
With installation and configuration of communications software, there are a variety of different possible pieces of information that the software may need in order to be installed and configured properly. The end user may need to supply such information as his name, user name, password, whether his phone line requires a xe2x80x9c9xe2x80x9d to be dialed in order to dial out, etc. The ISP may be able to supply other information before issuing the software to the end user, such as connection type, security information, and domain information.
ISPs however, rarely design the software they distribute. Rather a software developer may design general communications software. The ISP then will generally modify the software to enter the information it has available and to only have the wizard or wizards show the steps to the end user that the end user needs to see. In doing so, the ISP will generally also have to step through the wizard linearly (i.e. from the first step to the last step) and enter whatever information it has available. This wastes time, however, as it will normally have to skip over steps that the end user will have to respond to. If an end user cannot modify a field, the end user will generally not wish to see it. Therefore, ISPs spend considerable time and money modifying the software, especially the wizards, to best suit their customers.
Additionally, different ISPs may require slightly different implementations of the software and could benefit from the software provider giving them exactly the software they need. For example, an ISP that only offers dial-up access would not want software that provides an option for or helps configure an ISDN connection, as it wastes time and money and it ultimately would have to remove that option before giving it to the end users. Software providers, however, do not want to have to design a multitude of versions of the same piece of software in order to appease every ISP. What is needed is a solution which allows both the software provider and the ISP to easily customize wizards for ultimate use by the end users, in a way that is simple to implement in light of current C++ and MFC techniques.
A method for altering a wizard-based application, which are usually created using an object-oriented language with a base class, comprising utilizing one or more alternative base classes, said one or more alternative base classes derived from said one or more base classes and defining a backbone for integrating a hierarchy window, attribute window, and wizard page window; and linking said hierarchy window, said attribute window, and said wizard page window to a database and to each other such that changes made to one window are reflected in all the others and in said database, and that selecting a particular wizard page in one window acts to select that same page in the others. This allows a software developer to easily create and modify a wizard, as well as providing an intermediate stage user, such as an Internet Service Provider, with the ability to easily modify the wizard to skip pages and enter known data so that the end user need not go through unnecessary steps in the installation wizard when installing a software program. This solution also allows currently developed wizards to be easily modified for use with the present invention by simply changing the class from which each function or procedure is derived and a few other minor additions.